package com.example.openim.service;

public interface TokenCacheService {
    /**
     * 获取用户token，优先从Redis缓存获取
     *
     * @param userId     用户ID
     * @param platformID 平台ID
     * @return token字符串，获取失败返回null
     */
    String getUserToken(String userId, Integer platformID);

    /**
     * 获取管理员token，优先从Redis缓存获取
     *
     * @return 管理员token，获取失败返回null
     */
    String getAdminToken();

    /**
     * 缓存用户token
     *
     * @param userId        用户ID
     * @param platformID    平台ID
     * @param token         token字符串
     * @param expireSeconds 过期时间（秒）
     */
    void cacheUserToken(String userId, Integer platformID, String token, long expireSeconds);

    /**
     * 缓存管理员token
     *
     * @param token         token字符串
     * @param expireSeconds 过期时间（秒）
     */
    void cacheAdminToken(String token, long expireSeconds);

    /**
     * 清除用户token缓存
     *
     * @param userId     用户ID
     * @param platformID 平台ID
     */
    void clearUserTokenCache(String userId, Integer platformID);

    /**
     * 清除管理员token缓存
     */
    void clearAdminTokenCache();
}
